openconnect: set config variable on teardown and correctly pass the password
authorNikos Mavrogiannopoulos <[email protected]>
Sun, 31 Aug 2014 21:57:47 +0000 (23:57 +0200)
committerNikos Mavrogiannopoulos <[email protected]>
Sun, 31 Aug 2014 22:28:32 +0000 (00:28 +0200)
This addresses https://dev.openwrt.org/ticket/16634

Signed-off-by: Nikos Mavrogiannopoulos <[email protected]>
net/openconnect/Makefile
net/openconnect/files/openconnect-wrapper [new file with mode: 0755]
net/openconnect/files/openconnect.sh

index df0a70b7be28063d3eaa3b56d740b4e947cf07e8..00fbf8b6127f9443a659c77bf8e1ae45f072f6e6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openconnect
 PKG_VERSION:=6.00
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
@@ -56,6 +56,7 @@ define Package/openconnect/install
        $(INSTALL_BIN) ./files/vpnc-script $(1)/lib/netifd/
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/openconnect $(1)/usr/sbin/
+       $(INSTALL_BIN) ./files/openconnect-wrapper $(1)/usr/sbin/
 endef
 
 $(eval $(call BuildPackage,openconnect))
diff --git a/net/openconnect/files/openconnect-wrapper b/net/openconnect/files/openconnect-wrapper
new file mode 100755 (executable)
index 0000000..eb2df54
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# This script wraps openconnect in order to obtain the password
+# file from cmd.
+
+# $1 password file
+# $2... are passed to openconnect
+
+test -z "$1" && exit 1
+
+pwfile=$1
+shift
+
+cat $pwfile|/usr/sbin/openconnect $*
index 315b311efa2d1582c8951bc4fe54acff50116638..404ed6b6db52fcce141e3560279aba7517c85392 100755 (executable)
@@ -55,13 +55,15 @@ proto_openconnect_setup() {
        logger -t openconnect "executing 'openconnect $cmdline'"
 
        if [ -f "$pwfile" ];then
-               proto_run_command "$config" /usr/sbin/openconnect $cmdline <$pwfile
+               proto_run_command "$config" /usr/sbin/openconnect-wrapper $pwfile $cmdline
        else
                proto_run_command "$config" /usr/sbin/openconnect $cmdline
        fi
 }
 
 proto_openconnect_teardown() {
+       local config="$1"
+
        pwfile="/var/run/openconnect-$config.passwd"
 
        rm -f $pwfile